package com.twq.func.basic

/**
 * Created by tangweiqun on 2017/11/28.
 * 1、method(方法)：如果一个函数是一个class或者object的成员的时候，那么这个函数可以称为方法
 * 2、函数式程序设计的最重要的原则：将程序分解成很多只做一件事情的函数
 * 3、对于helper函数我们应该隐藏起来，我们可以用private来修饰
 * 4、scala提供了另一种方式来隐藏helper函数，就是本地函数，就是可以将函数定义在函数里面
 */
object LocalFunction {
  def main(args: Array[String]): Unit = {
    LongLines.processFile("scala-basic/scala-func/src/main/scala/com/twq/func/basic/LocalFunction.scala", 34)
  }
}

import scala.io.Source

object LongLines {
  def processFile(filename: String, width: Int) = {
    //本地函数
    def processLine(line: String) = {
      if (line.length > width)

        println(filename + ": " + line.trim)
    }

    val source = Source.fromFile(filename)
    for (line <- source.getLines())
      processLine(line)
  }

}
